// pages/bindingCard/bindingCard.js

let util = require('../../utils/util.js')
let reqJs = require('../../utils/req.js')

const app = getApp()


Page({

    /**
     * 页面的初始数据
     */
    data: {
        id: "",
        popupShow: false, //显示弹窗 测试
        popupType: 17, //弹窗类型 
        // popupShow: true, //显示弹窗 测试
        // popupType: 8, //弹窗类型  兑换说明

        deviceid: "",
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
        let id
        console.log(options)
        if (options.id) {
            id = options.id
            this.setData({
                id,
            })
        }

        console.log(decodeURIComponent(options.q))
        if (options.q) {
            id = util.getParams(decodeURIComponent(options.q), 'id')
            if (id) {
                this.setData({
                    id,
                    popupShow: true, //显示弹窗 测试
                    popupType: 8, //弹窗类型  兑换说明
                })
                console.log(id)
            }
            let deviceid = util.getParams(decodeURIComponent(options.q), 'deviceid')
            if (deviceid) {

                this.setData({
                    deviceid,
                    // popupShow: true, //显示弹窗 测试
                    // popupType: 8, //弹窗类型  兑换说明
                })
                console.log(deviceid)

                setTimeout(() => {
                    this.setData({
                        deviceid: "",
                    })
                }, 60 * 1000)


            }

        }
        if (options.scene) {
            // id = util.getParams(decodeURIComponent(options.q), 'id')
            this.setData({
                id: options.scene,
                popupShow: true, //显示弹窗 测试
                popupType: 8, //弹窗类型  兑换说明
            })
        }
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {
        
    },
    blindNFCCard(id) {
        // 更新用户列表数据列表数据
        if (this.data.id == "") {
            wx.showToast({
                title: '二维码无效',
                icon: "none"
            })
            return
        }
        reqJs.blindNFCCard(id).then(res => {

            console.log('>>>>>', res)

            wx.showToast({
                title: '绑定成功',
                // icon: 'none',
                duration: 2000,
                success: function () {
                    // wx.setStorageSync('blindNFCCardFlag', 1)

                    setTimeout(() => {
                        wx.switchTab({
                            url: '/pages/index/index',
                          })
                    }, 1500)
                  
                }
            })


        }).catch(error => {
            console.log(error)
        })
    },
    closeModeAi(e) {
        console.log(e)
        // 直接兑换
        if (e.detail.data == "binding") {
            this.blindNFCCard(this.data.id)
        }

    },
    scan() {
        let that = this

        // 测试：直接id写死
        // let pid = 1
        // that.signIn(did);

       

        if (this.data.deviceid != "") {


            if(!wx.getStorageSync('openid')){
              
                    // 显示加载提示
                wx.showLoading({ title: '获取用户信息中...', mask: true });
                    // 等待 openid 获取完成
                app.globalData.getOpenidPromise
                    .then((openid) => {
                        wx.hideLoading();
                        // 再次检查 deviceid 是否仍然有效
                        if (that.data.deviceid) {
                            reqJs.startMakeNFCCardMachine(that.data.deviceid)
                                .then(res => {
                                    wx.showToast({ title: '启动成功', icon: "none" });
                                })
                                .catch(err => {
                                    console.error('启动失败:', err);
                                    wx.showToast({ title: '启动失败，请重试', icon: "none" });
                                });
                        } else {
                            wx.showToast({ title: '设备码已过期', icon: "none" });
                        }
                    })
                    .catch((err) => {
                        wx.hideLoading();
                        console.error('获取 openid 失败:', err);
                        wx.showToast({ title: '用户信息获取失败', icon: "none" });
                    });
                // 关键点：立即返回，避免执行后续代码
                return;
            }


            reqJs.startMakeNFCCardMachine(this.data.deviceid).then(res => {
                wx.hideLoading()
                wx.showToast({
                    title: '启动成功',
                    icon: "none"
                })
            })


            return
        }
        // 正式
        // 扫码获取打卡id 调用打卡接口
        wx.scanCode({
            onlyFromCamera: true,
            success(res) {

                if (res.result.indexOf('platform.easys.co') == -1) {
                    wx.showToast({
                        title: '请识别正确的二维码噢',
                        icon: "none"
                    })
                    return
                }
                console.log("扫码成功：" + JSON.stringify(res))
                console.log(res)
                let deviceid = util.parameter(res.result, 'deviceid')


                if (!deviceid) {
                    wx.showToast({
                        title: '请识别正确的二维码噢',
                        icon: "none"
                    })
                    return
                }
                console.log(deviceid)
                // if (id == 1 || id == 2 || id == 3) {

                // that.finishMisson(id)

                reqJs.startMakeNFCCardMachine(deviceid).then(res => {

                    wx.showToast({
                        title: '启动成功',
                        icon: "none"
                    })
                })

                // } else {
                // 		wx.showToast({
                // 				title: '暂无该互动',
                // 				icon: "none"
                // 		})
                // }


            }
        })

    },
    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {
        this.setData({
            deviceid: "",
        })
    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    }
})